[
   Start                       -- _1,
   compilUnit                  -- _1 _2 _3,
   compilUnit.1:opt            -- _1,
   compilUnit.2:iter-star      -- _1,
   compilUnit.3:iter-star      -- _1,
   packageStm                  -- KW["package"] _1 _2,
   name                        -- _1,
   name                        -- _1 _2 _3,
   importStm                   -- KW["import"] _1 _2 KW["*"] _3,
   importStm                   -- KW["import"] _1 _2,
   importStm                   -- KW["import"] _1 _2,
   name                        -- _1,
   name                        -- _1 _2 _3,
   name                        -- _1,
   name                        -- _1 _2 _3,
   typeDec                     -- _1 _2,
   typeDec.1:opt               -- _1,
   typeDec                     -- _1 _2,
   typeDec.1:opt               -- _1,
   doccoment                   -- V  [V vs=2 [KW["/**"] _1] KW["*/"]],
   doccoment.1:iter-star       -- _1,
   classDec                    -- _1 KW["class"] _2 _3 _4 KW["{"] _5 KW["}"],
   classDec.1:iter-star        -- _1,
   classDec.3:opt              -- _1,
   classDec.4:opt              -- _1,
   classDec.5:iter-star        -- _1,
   aux                         -- KW["implements"] _1 _2,
   aux                         -- _1,
   aux.1:iter-star             -- _1,
   ManyInterfaceName           -- KW[","] _1,
   OptExtendsClass             -- KW["extends"] _1,
   modifier                    -- KW["public"],
   modifier                    -- KW["private"],
   modifier                    -- KW["protected"],
   modifier                    -- KW["static"],
   modifier                    -- KW["final"],
   modifier                    -- KW["native"],
   modifier                    -- KW["synchronized"],
   modifier                    -- KW["abstract"],
   modifier                    -- KW["threadsafe"],
   modifier                    -- KW["transient"],
   fieldDec                    -- _1 _2,
   fieldDec.1:opt              -- _1,
   fieldDec                    -- _1 _2,
   fieldDec.1:opt              -- _1,
   fieldDec                    -- _1 _2,
   fieldDec.1:opt              -- _1,
   fieldDec                    -- _1,
   fieldDec                    -- _1,
   methodDec                   -- _1 _2 _3 KW["("] _4 KW[")"] _5 _6,
   methodDec.1:iter-star       -- _1,
   methodDec.4:opt             -- _1,
   methodDec.5:iter-star       -- _1,
   methodDec                   -- _1 _2 _3 KW["("] _4 KW[")"] _5 _6,
   methodDec.1:iter-star       -- _1,
   methodDec.4:opt             -- _1,
   methodDec.5:iter-star       -- _1,
   type                        -- _1 _2,
   type.2:iter-star            -- KW["[]"],
   Boolean                     -- KW["boolean"],
   Byte                        -- KW["byte"],
   Char                        -- KW["char"],
   Short                       -- KW["short"],
   Int                         -- KW["int"],
   Float                       -- KW["float"],
   Long                        -- KW["long"],
   Double                      -- KW["double"],
   ClassName                   -- _1,
   InterfaceName               -- _1,
   True                        -- KW["true"],
   False                       -- KW["false"],
   paramList                   -- _1 _2,
   paramList.2:iter-star       -- _1,
   aux                         -- KW[","] _1,
   param                       -- _1 _2 _3,
   param.3:iter-star           -- _1,
   stmBlock                    -- V  [V vs=2 [KW["{"] _1] KW["}"]],
   stmBlock.1:iter-star        -- _1,
   stm                         -- _1,
   stm                         -- _1 _2,
   stm                         -- _1,
   stm                         -- _1,
   stm                         -- _1,
   stm                         -- _1,
   stm                         -- _1,
   stm                         -- _1,
   stm                         -- _1,
   stm                         -- KW["synchronized"] KW["("] _1 KW[")"] _2,
   stm                         -- KW["return"] _1 _2,
   stm.1:opt                   -- _1,
   stm                         -- KW["throw"] _1 _2,
   stm                         -- _1 KW[":"] _2,
   stm                         -- KW["break"] _1 _2,
   stm.1:opt                   -- _1,
   stm                         -- KW["continue"] _1 _2,
   stm                         -- _1,
   varDeclaration              -- _1 _2 _3 _4 KW[";"],
   varDeclaration.1:iter-star  -- _1,
   varDeclaration.4:iter-star  -- _1,
   ComaVarDecAux               -- KW[","] _1,
   varDeclarator               -- _1 _2 _3,
   varDeclarator.2:iter-star   -- _1,
   varDeclarator.3:opt         -- _1,
   OptVariableInitializer      -- KW["="] _1,
   ManyBraces                  -- KW["["] KW["]"],
   variableInitializer         -- _1,
   variableInitializer         -- KW["{"] _1 KW["}"],
   variableInitializer.1:opt   -- _1,
   aux                         -- _1 _2,
   aux                         -- _1 _2,
   aux.2:iter-star             -- _1,
   aux                         -- KW[","] _1,
   NumericExpression           -- _1,
   TestingExpression           -- _1,
   LogicalExpression           -- _1,
   StringExpression            -- _1,
   BitExpression               -- _1,
   CastingExpression           -- _1,
   CreatingExpressionexp       -- _1,
   LiteralExpression           -- _1,
   NullExpression              -- KW["null"],
   SuperExpression             -- KW["super"],
   ThisExpression              -- KW["this"],
   IDExpression                -- _1,
   BracketExpression           -- KW["("] _1 KW[")"],
   ArgListExpression           -- _1 KW["("] _2 KW[")"],
   ArgListExpression.2:opt     -- _1,
   BraceExpression             -- _1 KW["["] _2 KW["]"],
   PontoExpression             -- _1 _2 _3,
   VirgulaExpression           -- _1 _2 _3,
   InstanceClassExpression     -- _1 KW["instanceof"] _2,
   InstanceInterfaceExpression -- _1 KW["instanceof"] _2,
   argList                     -- _1 _2,
   argList.2:iter-star         -- _1,
   aux                         -- _1 _2,
   numExp                      -- KW["-"] _1,
   numExp                      -- KW["++"] _1,
   numExp                      -- KW["--"] _1,
   numExp                      -- _1 KW["++"],
   numExp                      -- _1 KW["--"],
   numExp                      -- _1 KW["+"] _2,
   numExp                      -- _1 KW["+="] _2,
   numExp                      -- _1 KW["-"] _2,
   numExp                      -- _1 KW["-="] _2,
   numExp                      -- _1 KW["*"] _2,
   numExp                      -- _1 KW["*="] _2,
   numExp                      -- _1 KW["/"] _2,
   numExp                      -- _1 KW["/="] _2,
   numExp                      -- _1 KW["%"] _2,
   numExp                      -- _1 KW["%="] _2,
   testingExp                  -- _1 KW[">"] _2,
   testingExp                  -- _1 KW["<"] _2,
   testingExp                  -- _1 KW[">="] _2,
   testingExp                  -- _1 KW["<="] _2,
   testingExp                  -- _1 KW["=="] _2,
   testingExp                  -- _1 KW["!="] _2,
   logicExp                    -- KW["!"] _1,
   logicExp                    -- _1 KW["ampersand"] _2,
   logicExp                    -- _1 KW["ampersand="] _2,
   logicExp                    -- _1 KW["|"] _2,
   logicExp                    -- _1 KW["|="] _2,
   logicExp                    -- _1 KW["^"] _2,
   logicExp                    -- _1 KW["^="] _2,
   logicExp                    -- _1 KW["ampersand"] KW["ampersand"] _2,
   logicExp                    -- _1 KW["||="] _2,
   logicExp                    -- _1 KW["%"] _2,
   logicExp                    -- _1 KW["%="] _2,
   logicExp                    -- _1 KW["?"] _2 _3 _4,
   logicExp                    -- KW["true"],
   logicExp                    -- KW["false"],
   strExp                      -- _1 KW["+"] _2,
   strExp                      -- _1 KW["+="] _2,
   bitExp                      -- KW["~"] _1,
   bitExp                      -- _1 KW[">>="] _2,
   bitExp                      -- _1 KW["<<"] _2,
   bitExp                      -- _1 KW[">>"] _2,
   bitExp                      -- _1 KW[">>>"] _2,
   castExp                     -- KW["("] _1 KW[")"] _2,
   creatExp                    -- KW["new"] _1 KW["("] _2 KW[")"],
   creatExp.2:opt              -- _1,
   creatExp                    -- KW["new"] _1 _2 _3,
   creatExp.2:opt              -- _1,
   creatExp.3:iter-star        -- _1,
   creatExp.3:iter-star.1:seq  -- KW["["] KW["]"],
   OptExpression               -- KW["["] _1 KW["]"],
   creatExp                    -- KW["new"] KW["("] _1 KW[")"],
   IntegerLiteral              -- _1,
   StringLiteral               -- _1,
   CharacterLiteral            -- _1,
   BooleanLiteral              -- _1,
   String                      -- V  [V vs=2 [KW["\""] _1] KW["\""]],
   String.1:iter-star          -- _1,
   StringChar                  -- _1,
   StringChar                  -- KW["\\\""],
   BackSlashChar               -- _1,
   BackSlashChar               -- KW["\\"],
   if                          -- KW["if"] KW["("] _1 KW[")"] _2 _3,
   if.3:opt                    -- _1,
   OptElse                     -- KW["else"] _1,
   do                          -- KW["do"] _1 KW["while"] KW["("] _2 KW[")"] _3,
   while                       -- KW["while"] KW["("] _1 KW[")"] _2,
   for                         -- KW["for"] KW["("] _1 _2 _3 _4 KW[")"] _5,
   for.2:opt                   -- _1,
   for.4:opt                   -- _1,
   for                         -- KW["for"] KW["("] _1 _2 _3 _4 _5 KW[")"] _6,
   for.3:opt                   -- _1,
   for.5:opt                   -- _1,
   for                         -- KW["for"] KW["("] _1 _2 _3 _4 KW[")"] _5,
   for.2:opt                   -- _1,
   for.4:opt                   -- _1,
   try                         -- KW["try"] _1 _2 _3,
   try.2:iter-star             -- _1,
   try.3:opt                   -- _1,
   OptFinally                  -- KW["finally"] _1,
   ManyCatchParam              -- KW["catch"] KW["("] _1 KW[")"] _2,
   switch                      -- KW["switch"] KW["("] _1 KW[")"] KW["{"] _2 _3 _4 KW["}"],
   switch.2:iter-star          -- _1,
   switch.3:iter-star          -- _1,
   switch.4:iter-star          -- _1,
   ManyCaseExp                 -- KW["case"] _1 _2,
   ManyDefaultDP               -- KW["default"] _1,
   Int                         -- _1 _2 _3,
   Int.2:iter-star             -- _1,
   Int.3:opt                   -- _1,
   deciAux                     -- _1,
   Int                         -- _1 _2,
   Int.1:iter-star             -- _1,
   Int.2:opt                   -- _1,
   octAux                      -- _1,
   Int                         -- KW["0"] KW["x"] _1 _2 _3,
   Int.2:iter-star             -- _1,
   Int.3:opt                   -- _1,
   intAux                      -- _1,
   decimalDigits               -- _1 _2,
   decimalDigits.2:iter-star   -- _1,
   expoentPart                 -- KW["e"] _1 _2,
   expoentPart.1:opt           -- _1,
   expoentPart                 -- KW["e"] _1 _2,
   expoentPart.1:opt           -- _1,
   floatTypeSuffix             -- KW["f"],
   floatTypeSuffix             -- KW["d"],
   Char                        -- KW["'"] _1 KW["'"],
   CharAux                     -- _1,
   CharAux                     -- _1,
   unicodeEscape               -- KW["\\"] _1 _2 _3 _4 _5,
   unicodeEscape.1:iter        -- _1,
   CharAux                     -- _1,
   CharAux                     -- _1,
   CharAux                     -- _1,
   CharAux                     -- KW["\\"] _1,
   CharAux                     -- KW["\\"] _1,
   CharAux                     -- KW["\\"] _1 _2,
   CharAux                     -- KW["\\"] _1 _2,
   CharAux                     -- KW["\\"] _1 _2 _3,
   constDec                    -- _1 _2 KW["("] _3 KW[")"] _4,
   constDec.1:iter-star        -- _1,
   constDec.3:opt              -- _1,
   staticInit                  -- KW["static"] _1,
   interfDec                   -- _1 KW["interface"] _2 _3 KW["{"] _4 KW["}"],
   interfDec.1:iter-star       -- _1,
   interfDec.3:opt             -- _1,
   interfDec.4:iter-star       -- _1,
   aux                         -- _1 _2,
   aux.2:iter-star             -- _1,
   aux.2:iter-star.1:seq       -- _1 _2,
   OptExtends                  -- KW["extends"] _1
]